Featured Post
다국어 XML 사이트맵과 canonical 설정 및 운영 팁 | 다국어 SEO ⑥
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
다국어 SEO에서 가장 조용히 트래픽을 갉아먹는 문제가 있다. 사이트맵과 canonical 태그의 충돌이다. 눈에 띄는 오류 메시지도 없다. 그냥 언어별 페이지가 구글에 색인되지 않거나, 엉뚱한 언어 페이지가 노출된다. 원인을 찾기 어려워서 방치하는 경우가 많다. 이번 편에서는 다국어 사이트맵과 canonical 태그를 올바르게 설정하고 유지하는 방법을 정리한다.
다국어 SEO 시리즈
1편. 다국어 SEO의 기본 원리
2편. hreflang 태그 설정
3편. 언어별 키워드 리서치 방법
4편. title, meta description, URL 현지화
5편. 국가별 검색엔진 차이
6편. 다국어 사이트맵과 canonical 운영 ← 현재글
7편: SEO 관점에서 흔히 하는 실수 (예정)
다국어 사이트맵이란 무엇인가
XML 사이트맵은 구글에게 '내 사이트에 이런 페이지들이 있으니 크롤링해 줘'라고 알려주는 파일이다. 단일 언어 사이트라면 하나의 사이트맵으로 충분하다. 다국어 사이트는 다르다. 언어별로 페이지가 존재한다. 구글이 각 언어 페이지를 빠르고 정확하게 인식하려면 사이트맵에 언어 정보까지 포함해야 한다. 이를 hreflang 사이트맵 또는 다국어 사이트맵이라고 부른다.
다국어 사이트맵의 두 가지 구성 방식
방식 1 - 하나의 사이트맵에 모든 언어 포함
페이지 수가 적은 소규모 신문사(기사 500개 이하)에 적합하다. 사이트맵 파일 하나에 모든 언어 페이지와 hreflang 정보를 함께 담는다.
XML 구조는 이렇다.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://example.com/ko/article-1/</loc>
<xhtml:link rel="alternate" hreflang="ko" href="https://example.com/ko/article-1/"/>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/article-1/"/>
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/article-1/"/>
</url>
<url>
<loc>https://example.com/en/article-1/</loc>
<xhtml:link rel="alternate" hreflang="ko" href="https://example.com/ko/article-1/"/>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/article-1/"/>
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/article-1/"/>
</url>
</urlset>
핵심은 모든 언어 버전이 동일한 <url> 블록 안에 서로를 가리키도록 작성하는 것이다. 2편에서 다룬 hreflang 양방향 참조 원칙이 사이트맵에서도 그대로 적용된다.
방식 2 - 언어별 사이트맵 분리 + 사이트맵 인덱스
기사가 많거나 언어가 3개 이상이라면 이 방식이 효율적이다. 각 언어별로 사이트맵 파일을 따로 만들고, 사이트맵 인덱스 파일 하나로 묶는다.
sitemap-index.xml ← 전체 사이트맵 목록
├── sitemap-ko.xml ← 한국어 페이지
├── sitemap-en.xml ← 영어 페이지
└── sitemap-ja.xml ← 일본어 페이지
관리와 디버깅이 쉽다. 언어별 색인 현황을 구글 서치콘솔에서 언어 단위로 따로 확인할 수 있다. 운영 인력이 적은 소규모 신문사에도 이 방식을 권장한다. 오류가 생겼을 때 어느 언어 사이트맵이 문제인지 바로 파악할 수 있기 때문이다.
사이트맵 방식 vs HTML head 방식: 무엇을 선택할까
hreflang을 구현하는 방법은 크게 두 가지다. HTML <head>에 직접 삽입하거나, 사이트맵에 넣는 방식이다.
| 항목 | HTML head 방식 | 사이트맵 방식 |
| 적합한 규모 | 소규모 (100페이지 이하) | 중·대규모 (100페이지 이상) |
| 관리 편의성 | 페이지마다 수동 관리 | 사이트맵 파일 하나에서 통합 관리 |
| 페이지 속도 | 언어가 많으면 느려질 수 있음 | 영향 없음 |
| 오류 발견 | 페이지 소스에서 확인 | 서치콘솔 사이트맵 탭에서 확인 |
소규모 신문사가 처음 시작할 때는 HTML head 방식으로 시작하고, 기사가 100개 이상으로 늘어나면 사이트맵 방식으로 전환하는 것이 현실적인 순서다.
단, 두 방식을 동시에 혼용하면 충돌이 생길 수 있다. 하나를 선택하면 다른 방식은 제거하거나 사용하지 않는 것이 원칙이다.
canonical 태그: 다국어 SEO에서 가장 많이 틀리는 설정
canonical 태그는 "이 페이지의 원본은 여기입니다"라고 구글에 알려주는 태그다. 중복 콘텐츠를 방지하기 위해 사용한다.
다국어 사이트에서 canonical 설정의 핵심 원칙은 하나다.
각 언어 페이지는 자기 자신을 canonical로 가리켜야 한다.
한국어 페이지:
<link rel="canonical" href="https://example.com/ko/article-1/" />
영어 페이지:
<link rel="canonical" href="https://example.com/en/article-1/" />
이 원칙을 어기면 심각한 문제가 생긴다.
canonical과 hreflang이 충돌하면 생기는 문제
가장 흔한 실수가 이것이다. 모든 언어 버전의 canonical을 영어 페이지 하나로 통일하는 것이다.
<!-- 잘못된 설정 예시 — 한국어 페이지에서 -->
<link rel="canonical" href="https://example.com/en/article-1/" />
이렇게 설정하면 구글은 한국어 페이지를 영어 페이지의 중복 콘텐츠로 인식한다. hreflang 태그가 아무리 정확하게 설정돼 있어도 canonical이 충돌하면 구글은 canonical을 우선시한다. 한국어 페이지가 검색 색인에서 사실상 사라지는 결과가 된다.
모든 언어 버전이 하나의 언어 페이지(예: 영어)를 canonical로 가리키도록 설정하는 것은 구글에게 비영어 버전 전체를 무시하라고 말하는 것과 같다. 각 언어 페이지는 독립적으로 자기 자신을 canonical로 설정해야 한다.
canonical과 hreflang은 반드시 일치해야 한다. canonical이 가리키는 URL은 사이트맵의 hreflang 클러스터 안에 포함돼 있어야 한다. canonical이 다른 페이지를 가리키면 검색엔진은 혼합된 신호를 받게 된다.
신문사 사이트에서 자주 생기는 canonical 오류 3가지
오류 1 - 페이지네이션 처리 실수
"2페이지", "3페이지" 같은 목록 페이지를 1페이지로 canonical 처리하는 경우가 있다. 이 경우 언어별 목록 페이지 2~3페이지가 색인에서 빠진다. 페이지네이션 페이지는 각각 자기 자신을 canonical로 설정하거나, rel="next"/rel="prev"를 사용해야 한다.
오류 2 - 번역 완료 전 임시 영어 canonical 설정
기사 번역이 완료되기 전에 임시로 영어 버전을 canonical로 설정해 두고 번역 후 수정을 잊는 경우다. 한국어 기사가 발행됐는데 영어 canonical이 남아 있으면 한국어 페이지가 색인되지 않는다. 번역 완료와 함께 canonical 업데이트를 반드시 체크리스트에 포함시켜야 한다.
오류 3 - URL 변경 후 canonical 미수정
기사 URL이 바뀌었는데 canonical이 이전 URL을 가리키는 경우다. 404 오류를 canonical이 가리키면 구글은 해당 canonical 신호를 무시한다. URL 변경 시 canonical과 hreflang 양쪽을 모두 업데이트해야 한다.
사이트맵 제출과 관리: 단계별 순서
1단계 - 사이트맵 파일 생성
워드프레스를 사용한다면 Yoast SEO나 Rank Math 플러그인이 다국어 사이트맵을 자동 생성해 준다. WPML과 함께 사용하면 언어별 사이트맵이 자동으로 구성된다. 직접 구축한 사이트라면 sitemap.xml에 언어별 URL과 hreflang 정보를 수동으로 작성한다.
2단계 - 구글 서치콘솔에 사이트맵 제출
서치콘솔 → 사이트맵 메뉴에서 제출한다. 언어별 사이트맵을 분리했다면 각각 별도로 제출한다. sitemap-ko.xml, sitemap-en.xml을 각각 제출하면 구글 서치콘솔에서 언어별 색인 현황을 따로 확인할 수 있다.
3단계 - 네이버 서치어드바이저에도 제출
한국어 독자를 타깃 한다면, 네이버 서치어드바이저(searchadvisor.naver.com)에도 동일한 사이트맵을 별도로 제출해야 한다. 구글 서치콘솔 제출만으로는 네이버 색인이 되지 않는다.
4단계 - 정기 점검
사이트맵을 제출했다고 끝이 아니다. 주기적으로 오류 여부를 확인해야 한다. 구글 서치콘솔 → 사이트맵 탭에서 색인된 URL 수와 오류 항목을 확인한다. 제출 URL 수와 색인된 URL 수가 크게 차이 난다면 canonical 충돌이나 hreflang 오류일 가능성이 높다.
더 밀(The Mill)의 지역별 사이트맵 운영
더 밀(The Mill)은 맨체스터·리버풀·셰필드·버밍엄 등 도시별로 독립된 URL 구조를 운영한다. 각 도시별 사이트가 별도 사이트맵을 갖고 있으며, 각 사이트맵은 해당 지역 기사만 담는다.
이 구조의 핵심 강점은 명확성이다. 구글이 '이 사이트맵은 맨체스터 콘텐츠' 임을 즉시 인식한다. 지역별 독자에게 정확한 기사가 노출되는 구조다.
다국어 신문사에 적용하면 이렇게 된다. sitemap-ko.xml에는 한국어 기사만, sitemap-en.xml에는 영어 기사만 담는다. 구글이 각 언어 사이트맵의 역할을 명확히 이해한다. 색인 효율이 올라가고 오류가 줄어든다.
소규모 신문사를 위한 최종 운영 체크리스트
창업 초기 설정 시 아래 항목을 순서대로 점검한다.
사이트맵 체크
□ 언어별 사이트맵 파일 생성 완료 (sitemap-ko.xml, sitemap-en.xml)
□ 각 <url> 블록에 언어별 hreflang xhtml:link 포함
□ 자기 참조 hreflang 포함 (자기 자신 언어도 명시)
□ x-default URL 포함
□ 구글 서치콘솔에 언어별 사이트맵 각각 제출
□ 한국어 운영 시 네이버 서치어드바이저 별도 제출
canonical 체크
□ 각 언어 페이지가 자기 자신을 canonical로 가리키는지 확인
□ 어떤 언어 페이지도 다른 언어 페이지를 canonical로 가리키지 않는지 확인
□ 404 URL이나 리디렉션 URL을 canonical로 가리키는 페이지 없는지 확인
정기 점검 (월 1회)
□ 구글 서치콘솔 → 사이트맵 탭에서 제출 URL 수와 색인 URL 수 비교
□ 국제 타기팅 탭에서 hreflang 오류 항목 확인 및 수정
□ URL 변경·삭제된 기사의 canonical과 hreflang 업데이트 확인
마무리
사이트맵과 canonical은 눈에 잘 보이지 않는다. 그래서 방치되는 경우가 많다. 하지만 이 두 가지가 잘못 설정되면, 아무리 좋은 기사를 발행해도 구글은 그 기사를 엉뚱한 방식으로 인식하거나 아예 색인하지 않는다.
원칙은 사이트맵을 언어별로 분리해서 관리하고, canonical은 반드시 자기 자신을 가리켜야 한다. 그리고 월 1회 정기 점검으로 오류를 조기에 잡아야 한다.
다음 편에서는 SEO 관점에서 흔히 하는 실수를 다룬다. 이번 시리즈에서 다룬 설정들 중 가장 자주 틀리는 항목을 모아 점검 가이드로 정리한다.
이 글은 '다국어 웹사이트 운영 팁 시리즈 - 3. 다국어 SEO'의 여섯 번째 글입니다.
- 공유 링크 만들기
- X
- 이메일
- 기타 앱

댓글
댓글 쓰기